function delta = delta_function(N, pos)
    % N: 序列的正半轴长度（负半轴对称）
    % pos: 冲击序列为 1 的位置（从 -N 到 N 的索引）
    
    % 构建长度为 2N+1 的向量，初始化为 0
    delta = zeros(1, 2*N+1);
    
    % 将 pos 调整到向量索引范围内
    % pos 可能为负数，我们需要将它转换为从 1 到 2N+1 的索引
    delta(N + pos + 1) = 1; % +1 是因为 MATLAB 的索引从 1 开始
end
% 设置参数
N = 4;       % 正半轴和负半轴的长度 (总长度为 2N+1)
pos = 0;     % 冲击序列为 1 的位置 (例如 pos = 0 对应 n=0)
% 调用 delta 函数生成单位冲击序列
unit_impulse = delta_function(N, pos);
% 绘制单位冲击序列
n = -N:N; % x 轴对应的索引，从 -N 到 N
stem(n, unit_impulse, 'LineWidth', 2);
title('Unit Impulse Sequence Including Negative Indices');
xlabel('n');
ylabel('Amplitude');
grid on;
